import java.util.Random;

public class randomRoosterGeneratie {

	// groote van de doubele array
	private int n;

	// doubele array
	private char[][] rooster;

	public randomRoosterGeneratie(int n) {

		this.rooster = new char[n][n];
		this.n = n;
	}

	public char[][] getRooster() {
		return rooster;
	}

	public void generateRooster() {
		Random randomGenerator = new Random();
		int random;
		int controleMuren;
		int nodigeMuren = (n * n - (2 * n + 2 * (n - 2))) / 4;
		System.out.println(nodigeMuren);

		controleMuren = 0;
		generate();

		while (controleMuren != nodigeMuren) {
			controleMuren = 0;
			for (int i = 0; i < n; i++)
				for (int j = 0; j < n; j++) {
					if (!(i == 0 || j == 0 || i == n - 1 || j == n - 1))
						if (rooster[i][j] == '%')
							controleMuren++;
				}
			if (controleMuren != nodigeMuren)
				generate();
		}
	}

	public void generate() {

		Random randomGenerator = new Random();
		int random;

		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n; j++) {
				if (i == 0 || j == 0 || i == n - 1 || j == n - 1)
					rooster[i][j] = '%';
				else if (j == n / 2 && i == n - 2) // klopt omdat we bij nul
													// beginnen tellen
					rooster[i][j] = '.';
				else if (i == 1 && j == 1)
					rooster[i][j] = 'P';
				else {// we laten een random number generator lopen(0-3). Als
						// het antwoord 3 is--> muur anders --> witte ruimte
					random = randomGenerator.nextInt(4);
					if (random == 3)
						rooster[i][j] = '%';
					else
						rooster[i][j] = ' ';
				}

			}
		}

	}

}
